package com.momo.rabbitmq.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DirectConfig {

    @Bean
    Queue directQueue(){
        return new Queue("momo_queue");
    }
    /**
     * AMQP的一个具体实现，交换机
     * durable 重启后这个队列是否有依然有效
     * autoDelete 长期未使用是否删除这个队列
     */
    @Bean
    DirectExchange directExchange(){
        return new DirectExchange("name",true,false);
    }

    /**
     * 把一个队列绑定一个具体的交换机上 并且给这个交换机起一个名字到时候通过这个名字来进行消息的路由
     * @return
     */
    @Bean
    Binding binding(){
        return BindingBuilder.bind(directQueue()).to(directExchange()).with("direct");
    }


}
